package com.thd.kotlinapp.activity

import android.database.DatabaseUtils
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Toast
import androidx.databinding.DataBindingUtil
import androidx.lifecycle.lifecycleScope
import com.thd.kotlinapp.R
import com.thd.kotlinapp.databinding.ActivityTestBinding
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext

class TestActivity : AppCompatActivity() {

    //不立即初始化  保证在使用的时候进行初始化
    private lateinit var bindingTest : ActivityTestBinding

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        bindingTest = DataBindingUtil.setContentView(this,R.layout.activity_test)


        bindingTest.startLaunch.setOnClickListener {
            buttonStartLaunch()
        }

        bindingTest.returnActivity.setOnClickListener { finish() }
    }

    private fun buttonStartLaunch(){
        lifecycleScope.launch {
            /**
             * withContext  切换线程
             * Dispatchers.Main  主线程
             * Dispatchers.IO  密集型任务  例如网络请求 文件读写
             * Dispatchers.Default CPU 密集型任务 计算 排序 数据处理
             * Dispatchers.Unconfined - 无限制的线程 让协程在当前线程中执行，直到第一个挂起点
             */

            Toast.makeText(this@TestActivity,"启动了一个协程",Toast.LENGTH_SHORT).show()
        }
    }
}